//牛客 WY16 不要二
//思路：根据公式推出，vv[i][j]的同一行后移两位与同一列下移两位都不能存在
//因此，我们先将每个位置都定义为1，在计数的时候将特殊位置标记为0，这样算出存在多少个1即可


#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int row = 0, col = 0;
    cin >> row >> col;

    vector<vector<int>> vv;
    vv.resize(row);
    for(auto& v : vv)
    {
        v.resize(col);
    }

    int count = 0;
    for(int i = 0; i < row; i++)
    {
        for(int j = 0; j < col; j++)
        {
            if(vv[i][j])
            {
                count++;
                if(i+2 < row)
                {
                    vv[i+2][j] = 0;
                }
                if(j+2 < col)
                {
                    vv[i][j+2] = 0;
                }
            }
        }
    }
    cout << count << endl;

    return 0;
}

